package com.ticket.system.service;

import com.ticket.system.domain.YanchuStatistics;
import com.ticket.system.domain.vo.MemberStatisticsVO;
import com.ticket.system.domain.vo.SettleGroupDetailVO;
import com.ticket.system.domain.vo.SettleGroupVO;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * 【请填写功能名称】Service接口
 * 
 * @author ruoyi
 * @date 2024-03-14
 */
public interface IYanchuStatisticsService 
{
    /**
     * 查询【请填写功能名称】
     * 
     * @param id 【请填写功能名称】主键
     * @return 【请填写功能名称】
     */
    public YanchuStatistics selectYanchuStatisticsById(Long id);

    /**
     * 查询【请填写功能名称】列表
     * 
     * @param yanchuStatistics 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<YanchuStatistics> selectYanchuStatisticsList(YanchuStatistics yanchuStatistics);

    /**
     * 新增【请填写功能名称】
     * 
     * @param yanchuStatistics 【请填写功能名称】
     * @return 结果
     */
    public int insertYanchuStatistics(YanchuStatistics yanchuStatistics);

    /**
     * 修改【请填写功能名称】
     * 
     * @param yanchuStatistics 【请填写功能名称】
     * @return 结果
     */
    public int updateYanchuStatistics(YanchuStatistics yanchuStatistics);

    /**
     * 批量删除【请填写功能名称】
     * 
     * @param ids 需要删除的【请填写功能名称】主键集合
     * @return 结果
     */
    public int deleteYanchuStatisticsByIds(Long[] ids);

    /**
     * 删除【请填写功能名称】信息
     * 
     * @param id 【请填写功能名称】主键
     * @return 结果
     */
    public int deleteYanchuStatisticsById(Long id);

    /**
     * 统计前一天
     */
    public void staticsPrevOrder(String date);

    public List<Map<String,Object>> selectStatisticsList();

    public Long selectStatisticsUser();

    public List<Map<String,Object>> staticsOrder(Integer type);

    public List<Map<String,Object>> performStatics();

    public List<Map<String,Object>> userTransStatics();

    public int initPrevOrder();

    public List<Map<String,Object>> listSessionByPerform(String sessionIds);

    public Map<String,Object> listSessionCollectByPerform(String sessionIds);

    public List<Map<String,Object>> listSessionBySession(String sessionIds);

    public Map<String,Object> listSessionCollectBySession(String sessionIds);

    public void exportPerformStatistics(HttpServletResponse response, String sessionIds);

    public void exportSessionStatistics(HttpServletResponse response, String sessionIds);

    public List<Map<String,Object>> listDetailsBySession(String sessionIds);

    public void exportListDetailsStatistics(HttpServletResponse response, String sessionIds);

    public List<SettleGroupVO> getSettleGroupList(String startTime,String endTime,List<Long> deptIds);
    public List<SettleGroupDetailVO> getSettleGroupDetail(String startTime, String endTime,List<Long> deptIds);
    void exportSettleGroupList(HttpServletResponse response,String startTime,String endTime,String exportMsg,List<Long> deptIds);
    void exportSettleGroupDetail(HttpServletResponse response,String startTime,String endTime,String exportMsg,List<Long> deptIds);

    List<MemberStatisticsVO> getMemberStatistics(String startTime, String endTime);

    void exportMemberStatistics(HttpServletResponse response,String startTime,String endTime,String exportMsg);


}
